
function randomNum(minNum, maxNum) {
  switch (arguments.length) {
    case 1:
      return parseInt(Math.random() * minNum + 1, 10);
      break;
    case 2:
      return parseInt(Math.random() * (maxNum - minNum + 1) + minNum, 10);
      break;
    default:
      return 0;
      break;
  }
}
class RandomName {
  constructor() {
    this.nickHeader = [
      "快乐的",
      "冷静的",
      "醉熏的",
      "潇洒的",
      "糊涂的",
      "积极的",
      "冷酷的",
      "深情的",
      "粗暴的",
      "温柔的",
      "可爱的",
      "愉快的",
      "义气的",
      "认真的",
      "威武的",
      "帅气的",
      "传统的",
      "潇洒的",
      "漂亮的",
      "自然的",
      "专一的",
      "听话的",
      "昏睡的",
      "狂野的",
      "等待的",
      "搞怪的",
      "幽默的",
      "魁梧的",
      "活泼的",
      "开心的",
      "高兴的",
      "超帅的",
      "留胡子的",
      "坦率的",
      "直率的",
      "轻松的",
      "痴情的",
      "完美的",
      "精明的",
      "无聊的",
      "有魅力的",
      "丰富的",
      "繁荣的",
      "饱满的",
      "炙热的",
      "暴躁的",
      "碧蓝的",
      "俊逸的",
      "英勇的",
      "健忘的",
      "故意的",
      "无心的",
      "土豪的",
      "朴实的",
      "兴奋的",
      "幸福的",
      "淡定的",
      "不安的",
      "阔达的",
      "孤独的",
      "独特的",
      "疯狂的",
      "时尚的",
      "落后的",
      "风趣的",
      "忧伤的",
      "大胆的",
      "爱笑的",
      "矮小的",
      "健康的",
      "合适的",
      "玩命的",
      "沉默的",
      "斯文的",
      "香蕉",
      "苹果",
      "鲤鱼",
      "鳗鱼",
      "任性的",
      "细心的",
      "粗心的",
      "大意的",
      "甜甜的",
      "酷酷的",
      "健壮的",
      "英俊的",
      "霸气的",
      "阳光的",
      "默默的",
      "大力的",
      "孝顺的",
      "忧虑的",
      "着急的",
      "紧张的",
      "善良的",
      "凶狠的",
      "害怕的",
      "重要的",
      "危机的",
      "欢喜的",
      "欣慰的",
      "满意的",
      "跳跃的",
      "诚心的",
      "称心的",
      "如意的",
      "怡然的",
      "娇气的",
      "无奈的",
      "无语的",
      "激动的",
      "愤怒的",
      "美好的",
      "感动的",
      "激情的",
      "激昂的",
      "震动的",
      "虚拟的",
      "超级的",
      "寒冷的",
      "精明的",
      "明理的",
      "犹豫的",
      "忧郁的",
      "寂寞的",
      "奋斗的",
      "勤奋的",
      "现代的",
      "过时的",
      "稳重的",
      "热情的",
      "含蓄的",
      "开放的",
      "无辜的",
      "多情的",
      "纯真的",
      "拉长的",
      "热心的",
      "从容的",
      "体贴的",
      "风中的",
      "曾经的",
      "追寻的",
      "儒雅的",
      "优雅的",
      "开朗的",
      "外向的",
      "内向的",
      "清爽的",
      "文艺的",
      "长情的",
      "平常的",
      "单身的",
      "伶俐的",
      "高大的",
      "懦弱的",
      "柔弱的",
      "爱笑的",
      "乐观的",
      "耍酷的",
      "酷炫的",
      "神勇的",
      "年轻的",
      "唠叨的",
      "瘦瘦的",
      "无情的",
      "包容的",
      "顺心的",
      "畅快的",
      "舒适的",
      "靓丽的",
      "负责的",
      "背后的",
      "简单的",
      "谦让的",
      "彩色的",
      "缥缈的",
      "欢呼的",
      "生动的",
      "复杂的",
      "慈祥的",
      "仁爱的",
      "魔幻的",
      "虚幻的",
      "淡然的",
      "受伤的",
      "雪白的",
      "高高的",
      "糟糕的",
      "顺利的",
      "闪闪的",
      "羞涩的",
      "缓慢的",
      "迅速的",
      "优秀的",
      "聪明的",
      "含糊的",
      "俏皮的",
      "淡淡的",
      "坚强的",
      "平淡的",
      "欣喜的",
      "能干的",
      "灵巧的",
      "友好的",
      "机智的",
      "机灵的",
      "正直的",
      "谨慎的",
      "俭朴的",
      "殷勤的",
      "虚心的",
      "辛勤的",
      "自觉的",
      "无私的",
      "无限的",
      "踏实的",
      "老实的",
      "现实的",
      "可靠的",
      "务实的",
      "拼搏的",
      "个性的",
      "粗犷的",
      "活力的",
      "成就的",
      "勤劳的",
      "单纯的",
      "落寞的",
      "朴素的",
      "悲凉的",
      "忧心的",
      "洁净的",
      "清秀的",
      "自由的",
      "小巧的",
      "单薄的",
      "贪玩的",
      "刻苦的",
      "干净的",
      "壮观的",
      "和谐的",
      "文静的",
      "调皮的",
      "害羞的",
      "安详的",
      "自信的",
      "端庄的",
      "坚定的",
      "美满的",
      "舒心的",
      "温暖的",
      "专注的",
      "勤恳的",
      "美丽的",
      "腼腆的",
      "优美的",
      "甜美的",
      "甜蜜的",
      "整齐的",
      "动人的",
      "典雅的",
      "尊敬的",
      "舒服的",
      "妩媚的",
      "秀丽的",
      "喜悦的",
      "甜美的",
      "彪壮的",
      "强健的",
      "大方的",
      "俊秀的",
      "聪慧的",
      "迷人的",
      "陶醉的",
      "悦耳的",
      "动听的",
      "明亮的",
      "结实的",
      "魁梧的",
      "标致的",
      "清脆的",
      "敏感的",
      "光亮的",
      "大气的",
      "老迟到的",
      "知性的",
      "冷傲的",
      "呆萌的",
      "野性的",
      "隐形的",
      "笑点低的",
      "微笑的",
      "笨笨的",
      "难过的",
      "沉静的",
      "火星上的",
      "失眠的",
      "安静的",
      "纯情的",
      "要减肥的",
      "迷路的",
      "烂漫的",
      "哭泣的",
      "贤惠的",
      "苗条的",
      "温婉的",
      "发嗲的",
      "会撒娇的",
      "贪玩的",
      "执着的",
      "眯眯眼的",
      "花痴的",
      "想人陪的",
      "眼睛大的",
      "高贵的",
      "傲娇的",
      "心灵美的",
      "爱撒娇的",
      "细腻的",
      "天真的",
      "怕黑的",
      "感性的",
      "飘逸的",
      "怕孤独的",
      "忐忑的",
      "高挑的",
      "傻傻的",
      "冷艳的",
      "爱听歌的",
      "还单身的",
      "怕孤单的",
      "懵懂的"
    ];
    this.nickFoot = [
      "嚓茶",
      "凉面",
      "便当",
      "毛豆",
      "花生",
      "可乐",
      "灯泡",
      "哈密瓜",
      "野狼",
      "背包",
      "眼神",
      "缘分",
      "雪碧",
      "人生",
      "牛排",
      "蚂蚁",
      "飞鸟",
      "灰狼",
      "斑马",
      "汉堡",
      "悟空",
      "巨人",
      "绿茶",
      "自行车",
      "保温杯",
      "大碗",
      "墨镜",
      "魔镜",
      "煎饼",
      "月饼",
      "月亮",
      "星星",
      "芝麻",
      "啤酒",
      "玫瑰",
      "大叔",
      "小伙",
      "哈密瓜，数据线",
      "太阳",
      "树叶",
      "芹菜",
      "黄蜂",
      "蜜粉",
      "蜜蜂",
      "信封",
      "西装",
      "外套",
      "裙子",
      "大象",
      "猫咪",
      "母鸡",
      "路灯",
      "蓝天",
      "白云",
      "星月",
      "彩虹",
      "微笑",
      "摩托",
      "板栗",
      "高山",
      "大地",
      "大树",
      "电灯胆",
      "砖头",
      "楼房",
      "水池",
      "鸡翅",
      "蜻蜓",
      "红牛",
      "咖啡",
      "机器猫",
      "枕头",
      "大船",
      "诺言",
      "钢笔",
      "刺猬",
      "天空",
      "飞机",
      "大炮",
      "冬天",
      "洋葱",
      "春天",
      "夏天",
      "秋天",
      "冬日",
      "航空",
      "毛衣",
      "豌豆",
      "黑米",
      "玉米",
      "眼睛",
      "老鼠",
      "白羊",
      "帅哥",
      "美女",
      "季节",
      "鲜花",
      "服饰",
      "裙子",
      "白开水",
      "秀发",
      "大山",
      "火车",
      "汽车",
      "歌曲",
      "舞蹈",
      "老师",
      "导师",
      "方盒",
      "大米",
      "麦片",
      "水杯",
      "水壶",
      "手套",
      "鞋子",
      "自行车",
      "鼠标",
      "手机",
      "电脑",
      "书本",
      "奇迹",
      "身影",
      "香烟",
      "夕阳",
      "台灯",
      "宝贝",
      "未来",
      "皮带",
      "钥匙",
      "心锁",
      "故事",
      "花瓣",
      "滑板",
      "画笔",
      "画板",
      "学姐",
      "店员",
      "电源",
      "饼干",
      "宝马",
      "过客",
      "大白",
      "时光",
      "石头",
      "钻石",
      "河马",
      "犀牛",
      "西牛",
      "绿草",
      "抽屉",
      "柜子",
      "往事",
      "寒风",
      "路人",
      "橘子",
      "耳机",
      "鸵鸟",
      "朋友",
      "苗条",
      "铅笔",
      "钢笔",
      "硬币",
      "热狗",
      "大侠",
      "御姐",
      "萝莉",
      "毛巾",
      "期待",
      "盼望",
      "白昼",
      "黑夜",
      "大门",
      "黑裤",
      "钢铁侠",
      "哑铃",
      "板凳",
      "枫叶",
      "荷花",
      "乌龟",
      "仙人掌",
      "衬衫",
      "大神",
      "草丛",
      "早晨",
      "心情",
      "茉莉",
      "流沙",
      "蜗牛",
      "战斗机",
      "冥王星",
      "猎豹",
      "棒球",
      "篮球",
      "乐曲",
      "电话",
      "网络",
      "世界",
      "中心",
      "鱼",
      "鸡",
      "狗",
      "老虎",
      "鸭子",
      "雨",
      "羽毛",
      "翅膀",
      "外套",
      "火",
      "丝袜",
      "书包",
      "钢笔",
      "冷风",
      "八宝粥",
      "烤鸡",
      "大雁",
      "音响",
      "招牌",
      "胡萝卜",
      "冰棍",
      "帽子",
      "菠萝",
      "蛋挞",
      "香水",
      "泥猴桃",
      "吐司",
      "溪流",
      "黄豆",
      "樱桃",
      "小鸽子",
      "小蝴蝶",
      "爆米花",
      "花卷",
      "小鸭子",
      "小海豚",
      "日记本",
      "小熊猫",
      "小懒猪",
      "小懒虫",
      "荔枝",
      "镜子",
      "曲奇",
      "金针菇",
      "小松鼠",
      "小虾米",
      "酒窝",
      "紫菜",
      "金鱼",
      "柚子",
      "果汁",
      "百褶裙",
      "项链",
      "帆布鞋",
      "火龙果",
      "奇异果",
      "煎蛋",
      "唇彩",
      "小土豆",
      "高跟鞋",
      "戒指",
      "雪糕",
      "睫毛",
      "铃铛",
      "手链",
      "香氛",
      "红酒",
      "月光",
      "酸奶",
      "银耳汤",
      "咖啡豆",
      "小蜜蜂",
      "小蚂蚁",
      "蜡烛",
      "棉花糖",
      "向日葵",
      "水蜜桃",
      "小蝴蝶",
      "小刺猬",
      "小丸子",
      "指甲油",
      "康乃馨",
      "糖豆",
      "薯片",
      "口红",
      "超短裙",
      "乌冬面",
      "冰淇淋",
      "棒棒糖",
      "长颈鹿",
      "豆芽",
      "发箍",
      "发卡",
      "发夹",
      "发带",
      "铃铛",
      "小馒头",
      "小笼包",
      "小甜瓜",
      "冬瓜",
      "香菇",
      "小兔子",
      "含羞草",
      "短靴",
      "睫毛膏",
      "小蘑菇",
      "跳跳糖",
      "小白菜",
      "草莓",
      "柠檬",
      "月饼",
      "百合",
      "纸鹤",
      "小天鹅",
      "云朵",
      "芒果",
      "面包",
      "海燕",
      "小猫咪",
      "龙猫",
      "唇膏",
      "鞋垫",
      "羊",
      "黑猫",
      "白猫",
      "万宝路",
      "金毛",
      "山水",
      "音响"
    ];

    this.femaleNameItems = `嘉、琼、桂、娣、叶、璧、璐、娅、琦、晶、妍、茜、秋、珊、莎、锦、黛、青、倩、婷、姣、婉、娴、瑾、颖、露、瑶、怡、婵、雁、蓓、纨、仪、荷、丹、蓉、眉、君、琴、蕊、薇、菁、梦、岚、苑、婕、馨、瑗、琰、韵、融、园、艺、咏、卿、聪、澜、纯、毓、悦、昭、冰、爽、琬、茗、羽、希、宁、欣、飘、育、滢、馥、筠、柔、竹、霭、凝、晓、欢、霄、枫、芸、菲、寒、伊、亚、宜、可、姬、舒、影、荔、枝、思、丽、秀、娟、英、华、慧、巧、美、娜、静、淑、惠、珠、翠、雅、芝、玉、萍、红、娥、玲、芬、芳、燕、彩、春、菊、勤、珍、贞、莉、兰、凤、洁、梅、琳、素、云、莲、真、环、雪、荣、爱、妹、霞、香、月、莺、媛、艳、瑞、凡、佳`.split("、");
    this.maleNameItems = `涛、昌、进、林、有、坚、和、彪、博、诚、先、敬、震、振、壮、会、群、豪、心、邦、承、乐、绍、功、松、善、厚、庆、磊、民、友、裕、河、哲、江、超、浩、亮、政、谦、亨、奇、固、之、轮、翰、朗、伯、宏、言、若、鸣、朋、斌、梁、栋、维、启、克、伦、翔、旭、鹏、泽、晨、辰、士、以、建、家、致、树、炎、德、行、时、泰、盛、雄、琛、钧、冠、策、腾、伟、刚、勇、毅、俊、峰、强、军、平、保、东、文、辉、力、明、永、健、世、广、志、义、兴、良、海、山、仁、波、宁、贵、福、生、龙、元、全、国、胜、学、祥、才、发、成、康、星、光、天、达、安、岩、中、茂、武、新、利、清、飞、彬、富、顺、信、子、杰、楠、榕、风、航、弘`.split("、");
   
    this.familyNameItemsSin = "赵,钱,孙,李,周,吴,郑,王,冯,陈,褚,卫,蒋,沈,韩,杨,朱,秦,尤,许,何,吕,施,张,孔,曹,严,华,金,魏,陶,姜,戚,谢,邹,喻,柏,水,窦,章,云,苏,潘,葛,奚,范,彭,郎,鲁,韦,昌,马,苗,凤,花,方,俞,任,袁,柳,酆,鲍,史,唐,费,廉,岑,薛,雷,贺,倪,汤,滕,殷,罗,毕,郝,邬,安,常,乐,于,时,傅,皮,卞,齐,康,伍,余,元,卜,顾,孟,平,黄,和,穆,萧,尹,姚,邵,湛,汪,祁,毛,禹,狄,米,贝,明,臧,计,伏,成,戴,谈,宋,茅,庞,熊,纪,舒,屈,项,祝,董,梁,杜,阮,蓝,闵,席,季,麻,强,贾,路,娄,危,江,童,颜,郭,梅,盛,林,刁,钟,徐,丘,骆,高,夏,蔡,田,樊,胡,凌,霍,虞,万,支,柯,昝,管,卢,莫,经,房,裘,缪,干,解,应,宗,丁,宣,贲,邓,郁,单,杭,洪,包,诸,左,石,崔,吉,钮,龚,程,嵇,邢,滑,裴,陆,荣,翁,荀,羊,于,惠,甄,曲,家,封,芮,羿,储,靳,汲,邴,糜,松,井,段,富,巫,乌,焦,巴,弓,牧,隗,山,谷,车,侯,宓,蓬,全,郗,班,仰,秋,仲,伊,宫,宁,仇,栾,暴,甘,钭,厉,戎,祖,武,符,刘,景,詹,束,龙,叶,幸,司,韶,郜,黎,蓟,薄,印,宿,白,怀,蒲,邰,从,鄂,索,咸,籍,赖,卓,蔺,屠,蒙,池,乔,阴,郁,胥,能,苍,双,闻,莘,党,翟,谭,贡,劳,逄,姬,申,扶,堵,冉,宰,郦,雍,嘤,璩,桑,桂,濮,牛,寿,通,边,扈,燕,冀,郏,浦,尚,农,柴,瞿,阎,充,慕,连,茹,习,宦,艾,鱼,容,向,古,易,慎,戈,廖,庾,终,暨,居,衡,步,都,耿,满,弘,匡,国,文,寇,广,禄,阙,东,欧,殳,沃,利,蔚,越,夔,隆,师,巩,厍,聂,晁,勾,敖,融,冷,訾,辛,阚,那,简,饶,空,曾,毋,沙,乜,养,鞠,须,丰,巢,关,蒯,相,查,后,荆,红,游,竺,权,逯,盖,益,桓,公,万,俟,司,马,上,官,欧,阳,夏,候,诸,葛,闻,人,东,方,赫,连,皇,甫,尉,迟,公,羊,澹,台,公,治,宗,政,濮,阳,淳,于,单,于,太,叔,申,屠,公,孙,仲,孙".split(",");
    this.familyNameItemsSur ='辕轩,令狐,钟离,宇文,长孙,幕容,鲜于,闾丘,司徒,司空,丌官,司寇,仉督,子车,颛孙,端木,巫马,公西,漆雕,乐正,壤驷,公良,拓拔,夹谷,宰父,谷梁,晋楚,阎法,汝鄢,涂钦,段干,百里,东郭,南门,呼延,归海,羊舌,微生,岳帅,缑亢,况后,有琴,梁丘,左丘,东门,西门,商牟,佘佴,佰赏,南官,墨哈,谯笪,年爱,阳佟,第五,言福'.split(",");
    this.allName = this.femaleNameItems.concat(this.maleNameItems);
    this.familyNameItemsAll = this.familyNameItemsSin.concat(this.familyNameItemsSur)
  }

  getNickHeader() {
    return this.nickHeader[randomNum(0, 331)];
  }
  getNickFoot() {
    return this.nickFoot[randomNum(0, 325)];
  }

  getNickName() {
    return this.getNickHeader() + this.getNickFoot();
  }

  getFamilyName(sur = true) {
    if(sur){

      return this.familyNameItemsAll[randomNum(0, this.familyNameItemsAll.length - 1)];
    }
    else{
      return this.familyNameItemsSin[randomNum(0, this.familyNameItemsSin.length - 1)];
    }
   
  }
  getFemaleName(sur) {
    const r = randomNum(0, 1);
    if (r === 0) {
      return (
        this.getFamilyName(sur) +
        this.femaleNameItems[randomNum(0, this.femaleNameItems.length - 1)] +
        this.femaleNameItems[randomNum(0, this.femaleNameItems.length - 1)]
      );
    } else {
      return (
        this.getFamilyName(sur) +
        this.femaleNameItems[randomNum(0, this.femaleNameItems.length - 1)]
      );
    }
  }
  getMaleName(sur) {
    const r = randomNum(0, 1);
    if (r === 0) {
    return (
      this.getFamilyName(sur) +
      this.maleNameItems[randomNum(0, this.maleNameItems.length - 1)] +
      this.maleNameItems[randomNum(0, this.maleNameItems.length - 1)]
    );
    }else{
      return (
        this.getFamilyName(sur) +
        this.maleNameItems[randomNum(0, this.maleNameItems.length - 1)]
      );
    }
  }
  getName(sur) {
    const r = randomNum(0, 1);
    if (r === 0) {
    return (
      this.getFamilyName(sur) +
      this.allName[randomNum(0, this.allName.length - 1)] +
      this.allName[randomNum(0, this.allName.length - 1)]
    );
    }
    else{
      return (
        this.getFamilyName() +this.allName[randomNum(0, this.allName.length - 1)]
      );
    }
    
  }
}
let randomName = new RandomName();
export default randomName;